import VeeValidate from "vee-validate"
//引入VeeValidate的中文包
import zh_CN from "vee-validate/dist/locale/zh_CN"
export default function (Vue) {
  Vue.use(VeeValidate)
  //对VeeValidate进行手动配置(必须写在use之后)
  VeeValidate.Validator.localize("zh_CN", {
    //messages对象就是对提示信息的一个配置对象
    messages: {
      //首先展开一个中文包里的所有的配置信息，再针对某个配置项进行重写
      ...zh_CN.messages,
      regex: (n) => `${n}的不符合规则！`,
      is: (n) => `${n}的值与密码的值不一致！`,
    },
    // 对字段进行中文名的配置
    attributes: {
      phone: "手机号",
      code: "验证码",
      password: "密码",
      passAgain: "确认密码",
      agree: "协议",
    },
  })

  //自定义配置一个新的规则
  VeeValidate.Validator.extend("agree", {
    //validate配置项是一个函数,接受当前校验的值,如果通过则返回true 否则返回false
    //因为这个agree规则是写在input的多选框单个使用的表单上,所以值是一个布尔值,当这个布尔值是true才能通过
    validate: (value) => {
      // if (value === true) {
      //   return true
      // } else {
      //   return false
      // }
      //简写：
      return value
    },
    //使用getMessage配置项 自定义提示信息,接受的参数是当前的字段名
    getMessage: (m) => {
      return `${m}必须同意协议才可注册！`
    },
  })
}
